home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / macurl2path.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  3KB  |  102 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. '''Macintosh-specific module for conversion between pathnames and URLs.
  5.  
  6. Do not import directly; use urllib instead.'''
  7. import urllib
  8. import os
  9. __all__ = [
  10.     'url2pathname',
  11.     'pathname2url']
  12.  
  13. def url2pathname(pathname):
  14.     '''Convert /-delimited pathname to mac pathname'''
  15.     tp = urllib.splittype(pathname)[0]
  16.     if tp and tp != 'file':
  17.         raise RuntimeError, 'Cannot convert non-local URL to pathname'
  18.     
  19.     if pathname[:3] == '///':
  20.         pathname = pathname[2:]
  21.     elif pathname[:2] == '//':
  22.         raise RuntimeError, 'Cannot convert non-local URL to pathname'
  23.     
  24.     components = pathname.split('/')
  25.     i = 0
  26.     while i < len(components):
  27.         if components[i] == '.':
  28.             del components[i]
  29.             continue
  30.         if components[i] == '..' and i > 0 and components[i - 1] not in ('', '..'):
  31.             del components[i - 1:i + 1]
  32.             i = i - 1
  33.             continue
  34.         if components[i] == '' and i > 0 and components[i - 1] != '':
  35.             del components[i]
  36.             continue
  37.         i = i + 1
  38.     if not components[0]:
  39.         rv = ':'.join(components[1:])
  40.     else:
  41.         i = 0
  42.         while i < len(components) and components[i] == '..':
  43.             components[i] = ''
  44.             i = i + 1
  45.         rv = ':' + ':'.join(components)
  46.     return urllib.unquote(rv)
  47.  
  48.  
  49. def pathname2url(pathname):
  50.     '''convert mac pathname to /-delimited pathname'''
  51.     if '/' in pathname:
  52.         raise RuntimeError, 'Cannot convert pathname containing slashes'
  53.     
  54.     components = pathname.split(':')
  55.     if components[0] == '':
  56.         del components[0]
  57.     
  58.     if components[-1] == '':
  59.         del components[-1]
  60.     
  61.     for i in range(len(components)):
  62.         if components[i] == '':
  63.             components[i] = '..'
  64.             continue
  65.     
  66.     components = map(_pncomp2url, components)
  67.     if os.path.isabs(pathname):
  68.         return '/' + '/'.join(components)
  69.     else:
  70.         return '/'.join(components)
  71.  
  72.  
  73. def _pncomp2url(component):
  74.     component = urllib.quote(component[:31], safe = '')
  75.     return component
  76.  
  77.  
  78. def test():
  79.     for url in [
  80.         'index.html',
  81.         'bar/index.html',
  82.         '/foo/bar/index.html',
  83.         '/foo/bar/',
  84.         '/']:
  85.         print '%r -> %r' % (url, url2pathname(url))
  86.     
  87.     for path in [
  88.         'drive:',
  89.         'drive:dir:',
  90.         'drive:dir:file',
  91.         'drive:file',
  92.         'file',
  93.         ':file',
  94.         ':dir:',
  95.         ':dir:file']:
  96.         print '%r -> %r' % (path, pathname2url(path))
  97.     
  98.  
  99. if __name__ == '__main__':
  100.     test()
  101.  
  102.